This invention relates generally to computer networks and more particularly to dispersing error encoded data.
Computing devices are known to communicate data, process data, and/or store data. Such computing devices range from wireless smart phones, laptops, tablets, personal computers (PC), work stations, and video game devices, to data centers that support millions of web searches, stock trades, or on-line purchases every day. In general, a computing device includes a central processing unit (CPU), a memory system, user input/output interfaces, peripheral device interfaces, and an interconnecting bus structure.
As is further known, a computer may effectively extend its CPU by using “cloud computing” to perform one or more computing functions (e.g., a service, an application, an algorithm, an arithmetic logic function, etc.) on behalf of the computer. Further, for large services, applications, and/or functions, cloud computing may be performed by multiple cloud computing resources in a distributed manner to improve the response time for completion of the service, application, and/or function. For example, Hadoop is an open source software framework that supports distributed applications enabling application execution by thousands of computers.
In addition to cloud computing, a computer may use “cloud storage” as part of its memory system. As is known, cloud storage enables a user, via its computer, to store files, applications, etc. on an Internet storage system. The Internet storage system may include a RAID (redundant array of independent disks) system and/or a dispersed storage system that uses an error correction scheme to encode data for storage.
Some memory devices used in various storage applications are not only constrained by a maximum throughput, but also by a maximum number of input/output operations per second (IOPS). For example, a hard drive may sustain 100 MB/s, but be limited to 100 random IOPS. If the object size (or slice size) is small, the throughput may be constrained by the IOPS and be significantly lower than the maximum capability of the drive. In a memory device that is IOPS constrained, performance is inversely proportional to the number of slices that need to be written or read. Currently available systems do not generally provide an efficient way of addressing this constraint.